/*
 * IpcMessageQueue.hpp
 *
 *  Created on: Oct 31, 2013
 *      Author: vladimir
 */

#ifndef IPCMESSAGEQUEUE_HPP_
#define IPCMESSAGEQUEUE_HPP_

#include "IpcTranceiverIface.hpp"

#include <memory>
#include <string>

namespace vjipc
{

class IpcMessageQueue : public IpcTranceiverIface
{
public:
	explicit IpcMessageQueue( const std::string & name );
	~IpcMessageQueue();


	void SendMessage( const char * data,
	                  const unsigned int dataLength );
	unsigned int ReceiveMessage( char * buffer,
	                             const unsigned int bufferSize );

private:

	struct Imp;
	std::unique_ptr<Imp> pimpl;

};

} /* namespace vjipc */

#endif /* IPCMESSAGEQUEUE_HPP_ */
